20 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M> <CTRL-M>
100 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M>********************************<CTRL-M>PRINT FIELDS DEMO <CTRL-M> BY DAVE GARSON<CTRL-M>********************************<CTRL-M>
200 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M>================================<CTRL-M> PUBLIC SERVICE RESEARCH AND<CTRL-M> COMPUTER LABORATORY, NORTH<CTRL-M> CAROLINA STATE UNIVERSITY<CTRL-M>================================<CTRL-M>
290 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M> <CTRL-M>
300 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M>********************************<CTRL-M> INTRODUCTION<CTRL-M>********************************<CTRL-M>
400 TEXT : HOME : VTAB 5
405 XX = 1
410 Q$ = CHR$(34)
499 GOTO 1000
500 VTAB 24: INVERSE : PRINT "TYPE ANY KEY TO CONTINUE.";: NORMAL : CALL -868: GET AN$: CALL -998: HOME : RETURN
600 VTAB 24: INVERSE : PRINT "TYPE ANY KEY TO SEE LINE EXECUTED";: NORMAL : GET AN$: CALL -875: CALL -998: RETURN
1000 PRINT "THIS IS A DEMONSTRATION OF THE APPLE'S": PRINT
1010 PRINT "PRINT COMMANDS."
1020 PRINT : PRINT : PRINT "CHOOSE WHICH LESSON:": PRINT
1030 PRINT "1) THE BASIC PRINT STATEMENT
1040 PRINT "2) USING COMMAS
1050 PRINT "3) USING SEMICOLONS
1060 PRINT "4) USING TAB AND SPC
1070 PRINT "5) USING HTAB AND VTAB
1080 PRINT "6) NORMAL, INVERSE, AND FLASH MODES"
1090 PRINT "7) RETURN TO MAIN MENU
1100 PRINT : PRINT : INPUT "CHOOSE (1 TO 7): ";A%
1110 ON A% GOSUB 2000,3000,4000,6000,7000,8000,9000
1120 GOTO 400
2000 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M>********************************<CTRL-M> THE BASIC PRINT STATEMENT<CTRL-M>********************************<CTRL-M>
2330 PRINT "THE OTHER WAY TO PRINT QUOTATION MARKS": PRINT
2349 PRINT "IS USING THE 'CHR$(34)' COMMAND, BUT": PRINT
2350 PRINT "WE'LL GET TO THAT IN ANOTHER LESSON."
2360 GOSUB 500
2370 PRINT "THE NORMAL APPLE SCREEN IS FORTY COLUMNS"
2380 PRINT "ACROSS, SO YOUR 'PRINT' LINE CAN HAVE": PRINT
2390 PRINT "40 CHARACTERS TOO. ACTUALLY IT CAN HAVE"
2395 PRINT
2400 PRINT "OVER 240 CHARACTERS, BUT IF YOU GO OVER"
2405 PRINT
2410 PRINT "40 THEY'LL WRAP AROUND ONTO THE NEXT"
2420 PRINT : PRINT "LINE, TRUNCATING WORDS AWKWARDLY."
2440 GOSUB 500
2450 PRINT "FOR EXAMPLE, HERE'S WHAT A VERY LONG PRINT STATEMENT COMES OUT LIKE WHEN YOU DECIDE TO GO OVER FORTY CHARACTERS PER LINE....THOUGH, OF COURSE, BY USING SPACES CAREFULLY YOU COULD GET AWAY WITH IT."
2460 GOSUB 500
2470 PRINT "HERE'S A TIP ON KEEPING TRACK OF WHEN ": PRINT
2480 PRINT "YOU GET UP TO 40 CHARACTERS: YOU'RE ": PRINT
2490 PRINT "THERE WHEN YOUR ENDING QUOTE MARK IS "
2495 PRINT
2500 PRINT "JUST BELOW YOUR BEGINNING QUOTE MARK:": PRINT
2510 PRINT : PRINT
2520 PRINT "100 PRINT "; CHR$(34);"THIS IS A TEST........................."; CHR$(34)
2530 GOSUB 500
2540 PRINT "YOU C A N GO ONE SPACE BEYOND THIS": PRINT
2550 PRINT "BUT IT WILL CAUSE A BLANK LINE TO BE ": PRINT
2560 PRINT "INSERTED AFTER THE ONE YOU'VE JUST ": PRINT
2570 PRINT "ENTERED, LIKE IN THE FIRST LINE OF THIS"
2572 PRINT : PRINT "PARAGRAPH."
2580 GOSUB 500
2590 PRINT "ANOTHER TIP: THE '?' CHARACTER IS THE": PRINT
2600 PRINT "APPLESOFT TOKEN FOR 'PRINT' SO YOU CAN": PRINT
2640 PRINT : PRINT "WHEN LISTED 'PRINT' WILL DISPLACE '?'"
2645 GOSUB 500
2650 PRINT "HERE'S A LITTLE TIME-SAVER:"
2660 PRINT : PRINT
2670 PRINT "THERE IS NO NEED FOR AN ENDING QUOTE": PRINT
2680 PRINT "MARK IF THE LAST CHARACTER IN THE QUOTE"
2690 PRINT : PRINT "IS THE LAST CHARACTER FOR THAT LINE:": PRINT : PRINT
2700 PRINT "100 PRINT ";Q$;"LOOK MA, NO END QUOTE!"
2710 GOSUB 600: PRINT
2720 VTAB 21: PRINT "LOOK MA, NO END QUOTE!"
2730 GOSUB 500
2740 PRINT "TWO FINAL NOTES!:": PRINT : PRINT
2750 PRINT "1] 'PRINT' BY ITSELF CAUSES A BLANK LINE": PRINT "TO BE PRINTED (I.E., IT SKIPS A LINE).": PRINT
2755 PRINT
2758 VTAB 22: INVERSE : PRINT "TYPE ANY KEY TO CONTINUE.": NORMAL : GET AN$: VTAB 17: CALL -958
2760 PRINT "2] 'SPEED=X', WHERE X = 0 TO 255, VARIES"
2770 SPEED= 0: PRINT "THE TEXT SPEED LIKE THIS.": SPEED= 255
2780 PRINT : PRINT "(255 IS NORMAL, 0 IS SLOWEST)."
2800 GOSUB 500
2999 RETURN
3000 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M>********************************<CTRL-M> USING COMMAS<CTRL-M>********************************<CTRL-M>
4000 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M>********************************<CTRL-M> USING SEMICOLONS<CTRL-M>********************************<CTRL-M>
4230 PRINT "NOTICE THE SEMI-COLON WILL CAUSE THE "
4240 PRINT : PRINT "NEXT PRINT TO BE IMMEDIATE EVEN IF THE": PRINT
4250 PRINT "NEXT PRINT COMMAND IS IN A LATER LINE:": PRINT : PRINT
4260 PRINT "100 PRINT ";Q$;"HAIL";Q$;";"
4265 PRINT
4270 PRINT "200 REM - INTERVENING LINES": PRINT
4280 PRINT "300 PRINT ";Q$;"CHIEF!";Q$
4290 GOSUB 600: PRINT
4300 VTAB 20: PRINT "HAILCHIEF!"
4310 GOSUB 500
4999 RETURN
5001 REM
6000 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M>********************************<CTRL-M> TAB AND SPC<CTRL-M>********************************<CTRL-M>
6001 HOME : VTAB 2: PRINT " T H E T A B C O M M A N D"
7000 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M>********************************<CTRL-M> HTAB AND VTAB<CTRL-M>********************************<CTRL-M>
7001 TEXT : HOME : VTAB 6: PRINT "BY USING 'HTAB' AND 'VTAB' ONE CAN MOVE": PRINT : PRINT "THE CURSOR ANYWHERE ON THE SCREEN.": PRINT : PRINT
7002 PRINT "LETS LOOK AT THIS SCREEN, WHICH IS 40": PRINT : PRINT "COLUMNS BY 24 ROWS:": GOSUB 500
7003 HOME : NORMAL : FOR I = 1 TO 39:A$ = A$ + CHR$(95): NEXT : FOR I = 1 TO 24: VTAB I: HTAB 1: PRINT A$;: NEXT : INVERSE : FOR X = 2 TO 23: FOR Y = 5 TO 40 STEP 5: VTAB X: HTAB Y: PRINT LEFT$(A$,1);: NEXT : NEXT
7004 FOR Y = 1 TO 24 STEP 23: FOR I = 5 TO 35 +5 *(Y = 1) STEP 5: VTAB Y: HTAB I -(I >9): PRINT I;: NEXT : NEXT : NORMAL : FOR I = 1 TO 24: VTAB I: HTAB 1: PRINT I;: NEXT : POKE 2038,52: POKE 2039,48: INVERSE : GOSUB 500
7210 PRINT "NOTE THAT HTAB TABS OVER FROM THE ": PRINT
7220 PRINT "LEFT EDGE OF THE CURRENT SCREEN LINE": PRINT
7230 PRINT "(USUALLY THE LEFT TEXT WINDOW EDGE), AND"
7240 PRINT "PUTS POSITIONS 1 TO 40 ON THE CURRENT": PRINT
7250 PRINT "LINE, 41 TO 80 ON THE NEXT, ETC.": PRINT : PRINT
7260 PRINT "THIS MEANS THAT WHEN THE LEFT EDGE IS": PRINT
7270 PRINT "NOT SET TO BE AT COLUMN 1, IT'S POSSIBLE"
7280 PRINT "TO HTAB RIGHT OFF THE SCREEN!"
7300 GOSUB 500
7310 PRINT "'VTAB' IS AN ABSOLUTE COMMAND TO MOVE": PRINT
7320 PRINT "TO THE STATED LINE ON THE APPLE'S": PRINT
7330 PRINT "24-LINE SCREEN: VTAB 13, FOR EXAMPLE,": PRINT
7340 PRINT "MOVES THE CURSOR TO THE BEGINNING OF"
7350 PRINT : PRINT "THE 13TH LINE. VTAB-ING OVER 24 CAUSES": PRINT
7360 PRINT "AN ERROR MESSAGE.": PRINT : PRINT
7370 PRINT "VTAB IGNORES THE TEXT WINDOW ENTIRELY."
7990 GOSUB 500
7999 RETURN
8000 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M>********************************<CTRL-M> NORMAL, INVERSE, AND FLASH<CTRL-M> MODES<CTRL-M>********************************<CTRL-M>
8002 HOME : VTAB 2: PRINT " NORMAL, INVERSE, AND FLASH MODES"
8170 PRINT : PRINT "LOOP THROUGH THIS ROUTINE AS OFTEN AS": PRINT : PRINT "YOU WISH.": GOSUB 600
8180 PRINT : PRINT
8200 FOR LOOP = 1 TO 10
8230 VTAB 17: PRINT "NORMAL/ /NORMAL"
8240 FOR DLAY = 1 TO 250: NEXT
8250 VTAB 17
8260 PRINT "NORMAL/NOTHING/NORMAL"
8270 FOR DLAY = 1 TO 400: NEXT
8280 NEXT
8990 GOSUB 500
8999 RETURN
9000 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H> <CTRL-M>********************************<CTRL-M> CHAIN BACK TO MAIN PROGRAM<CTRL-M>********************************<CTRL-M>
9010 TEXT : HOME : VTAB 11
9020 PRINT "THANK YOU FOR WATCHING."
9030 PRINT : PRINT : PRINT "(LOADING MAIN MENU)"
9040 PRINT CHR$(4);"RUN MENU"
9050 CALL 520"MAIN MENU"
63000 HOME : PRINT "REMARK WRITER/FORMATTER BY JON VOSKUIL"
63150 INVERSE : FOR I = 1 TO N: PRINT "H";: NEXT I: NORMAL
63160 PRINT SPC( N);: INVERSE : PRINT "M";: NORMAL : IF R$ < >"" THEN FOR I = 1 TO 32: PRINT R$;: NEXT I: INVERSE : PRINT "M";: NORMAL
63170 FOR I = 1 TO PART: PRINT SPC( 16 - LEN(R$(I))/2);R$(I);: INVERSE : PRINT "M";: NORMAL : NEXT I: IF R$ < >"" THEN FOR I = 1 TO 32: PRINT R$;: NEXT I: INVERSE : PRINT "M";: NORMAL
63180 VTAB 3: HTAB 1: PRINT "COPY WITH RIGHT ARROW:": VTAB 7: END
63190 POKE -16368,0: PRINT C$;B$;:R$ = ""
63200 C = PEEK( -16384): IF C >127 THEN 63240
63210 T = T +1: IF T <5 THEN 63200
63220 IF F THEN PRINT " ";B$;:F = 0:T = 0: GOTO 63200
63230 PRINT C$;B$;:F = 1:T = 0: GOTO 63200
63240 POKE -16368,0:C = C -128: IF C = 13 THEN PRINT " ": RETURN
63250 IF C < >8 THEN PRINT CHR$(C);C$;B$;:R$ = R$ + CHR$(C): GOTO 63200
63260 IF R$ >"" THEN PRINT " ";B$;B$;C$;B$;: IF LEN(R$) >1 THEN R$ = LEFT$(R$, LEN(R$) -1): GOTO 63200